<?php

class AsistenciaController extends Controller {

    public function filters() {
        return array(array('CrugeAccessControlFilter'));
    }

    /**
     * Specifies the access control rules.
     * This method is used by the 'accessControl' filter.
     * @return array access control rules
     */
    public function accessRules() {
        return array(
            array('allow', // allow all users to perform nothing
                'actions' => array(),
                'users' => array('*'),
            ),
            array('allow', // allow authenticated user to perform actions
                'actions' => array(
                    'index',
                    'obtenerPorcentajeAsistencia',
                    'cargarDropDownList',
                    'obtenerPresentes',
                    'reporteAlumno',
                    'ReporteProfesor',
                    'ActualizarBd'
                ),
                'users' => array('@'),
            ),
            array('allow', // allow admin user to perform actions
                'actions' => array(),
                'users' => array('admin'),
            ),
            array('deny', // deny all users
                'users' => array('*'),
            ),
        );
    }

    //*************************************************************************************************************************************************************
    public function actionIndex() {
        $idCurso = Yii::app()->user->getState('idCurso');
        $idProfesor = Yii::app()->user->getState('idProfesor');

        if ($idProfesor === null) {
            $this->redirect(Yii::app()->homeUrl);
        }
        if ($idCurso === null) {
            $this->redirect(Yii::app()->createUrl('clase/create'));
        }

        $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
        $response = $soapClient->getAlumnoXCurso($idCurso);
        $copia = array();
        $array = array();

        if (isset($response)) {
            foreach ($response as $idAlumno) {
                $alumnoXCurso = new AlumnoXCurso;
                $array['id_alumno'] = $idAlumno;
                $array['id_curso'] = $idCurso;

                $alumnoXCurso->setAttributes($array);
                $alumnoXCurso->setPrimaryKey(array('id_alumno' => $array['id_alumno'], 'id_curso' => $array['id_curso']));
                array_push($copia, $alumnoXCurso);
            }

            $dataProviderAlumnoXCurso = new CActiveDataProvider(AlumnoXCurso::model());
            $dataProviderAlumnoXCurso->setData(array_values($copia));
            $dataProviderAlumnoXCurso->setKeys(array_keys($copia));
            $dataProviderAlumnoXCurso->setTotalItemCount(sizeof($response));
			
			Yii::log(Yii::app()->user->um->getFieldValue(1000,'nombre'),'info','asistenciaController');
			Yii::log(Yii::app()->user->um->getFieldValue(107,'nombre'),'info','asistenciaController');

            $this->render('index', array(
                'dataProviderAlumnoXCurso' => $dataProviderAlumnoXCurso,
            ));
        } else {
            throw new CHttpException(404, 'No existen alumnos inscriptos al curso seleccionado.');
        }
    }

    //*************************************************************************************************************************************************************
    public function actionObtenerPorcentajeAsistencia() {

        if (Yii::app()->request->isAjaxRequest) {
            $idCurso = Yii::app()->request->getParam('idCurso', null);
            $idAlumno = Yii::app()->user->getState('idAlumno');

            $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
            $response = $soapClient->getCurso($idCurso);
            $totalHorasMateria = $soapClient->getCurso($idCurso); //15semanas
            $totalHorasMateria = $totalHorasMateria['cnt_horas_sem'];

            if ($idAlumno !== null) {
                $queryString = "select sum(presencia) as horas from asistencia where 
                                id_alumno = $idAlumno and id_curso = $idCurso ;";

                $query = Yii::app()->db->createCommand($queryString)->queryRow();
                $resultado = ((int) $query['horas'] / $totalHorasMateria) * 100;

                header("Content-type: text/html");
                echo "<b><u>Porcentaje de Asistencia:</b></u>  ".round($resultado,2)." <b>%</b>";
            }
        }
    }

//*************************************************************************************************************************************************************
    public function actionReporteProfesorgeneral() {
        $this->render('reporteprofesor_general');
    }

//*************************************************************************************************************************************************************
    public function actionReporteAlumnogeneral() {
        $this->render('reportealumno_general');
    }

//*************************************************************************************************************************************************************
    public function actionCargarCGridViewAsistencia() {
        if (Yii::app()->request->isAjaxRequest) {
            $idClase = Yii::app()->request->getParam('clase', null);
            $queryString = "select fecha, id_curso from clase where '" . $idClase . "' = id_clase;";
            $resultado = Yii::app()->db->createCommand($queryString)->queryRow();
            $idCurso = $resultado['id_curso'];
            $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
            $response = $soapClient->getCantHoraMateria($idCurso, $resultado['fecha']); 

            $dataProviderAsistencia = new CActiveDataProvider(Asistencia::model(), array(
                'keyAttribute' => 'id_alumno',
                'criteria' => array('condition' => 'id_clase=' . $idClase, 'order' => 'id_alumno ASC')
            ));

            if (isset($response)) {
                $cantHora = $response;
            } else {
                throw new CHttpException(404, 'Segun el horario de clase, este curso no corresponde para la fecha ('.$resultado['fecha'].')');
            }

            $output = $this->widget('zii.widgets.grid.CGridView', array(
                'id' => 'clase',
                'dataProvider' => $dataProviderAsistencia,
                'selectableRows' => 1,
                'columns' => array(
                       array(
                        'type' => 'text',
                        'name' => "Matricula",
                        'value' => 'Asistencia::model()->getMatricula($data->id_alumno)'),

                    array(
                        'type' => 'text',
                        'name' => "alumno",
                        'value' => 'Asistencia::model()->getDatosAlumno($data->id_alumno)'
                    ),
                    array(
                        'class' => 'CCheckBoxColumn',
                        'id' => 'primeraHora',
                        'selectableRows' => 1,
                        'header' => 'Primera Hora',
                        'visible' => 1 > $cantHora ? false : true,
                        'checked' => 'Asistencia::model()->getPresencia($data->id_curso,$data->id_alumno,' . $idClase . ',1)',),
                    array(
                        'class' => 'CCheckBoxColumn',
                        'id' => 'segundaHora',
                        'header' => 'Segunda Hora',
                        'selectableRows' => 1,
                        'visible' => 2 > $cantHora ? false : true,
                        'checked' => 'Asistencia::model()->getPresencia($data->id_curso,$data->id_alumno,' . $idClase . ',2)'),
                    array(
                        'class' => 'CCheckBoxColumn',
                        'id' => 'terceraHora',
                        'header' => 'Tercera Hora',
                        'selectableRows' => 1,
                        'visible' => 3 > $cantHora ? false : true,
                        'checked' => 'Asistencia::model()->getPresencia($data->id_curso,$data->id_alumno,' . $idClase . ',3)'),
                    array(
                        'class' => 'CCheckBoxColumn',
                        'id' => 'cuartaHora',
                        'header' => 'Cuarta Hora',
                        'selectableRows' => 1,                       
                        'visible' => 4 > $cantHora ? false : true,
                        'checked' => 'Asistencia::model()->getPresencia($data->id_curso,$data->id_alumno,' . $idClase . ',4)'),
                    array(
                        'class' => 'CCheckBoxColumn',
                        'id' => 'quintaHora',
                        'header' => 'Quinta Hora',
                        'selectableRows' => 1,                       
                        'visible' => 5 > $cantHora ? false : true,
                        'checked' => 'Asistencia::model()->getPresencia($data->id_curso,$data->id_alumno,' . $idClase . ',5)'),
                    array(
                        'class' => 'CCheckBoxColumn',
                        'id' => 'sextaHora',
                        'header' => 'Sexta Hora',
                        'selectableRows' => 1,                       
                        'visible' => 6 > $cantHora ? false : true,
                        'checked' => 'Asistencia::model()->getPresencia($data->id_curso,$data->id_alumno,' . $idClase . ',6)'),
                     array(
                        'type' => 'text',
                        'name' => "Porcentaje de Asistencia",
                        'value' => 'Asistencia::model()->getPorcentajeAsistencia($data->id_alumno, $data->id_curso,'.$idClase.')')
                ),
                    ), true);
            echo $output;
        }
    }

//*************************************************************************************************************************************************************
    public function actionCargarDropDownList() {
        if (Yii::app()->request->isAjaxRequest) {
            $dataProviderClase = Clase::model()->findAll();
            $idCurso = Yii::app()->request->getParam('idCurso', 0); 
            $arrayClase = array();
			$arrayFecha = array();
			$arrayDias = array();
			if($idCurso != 0){
				foreach ($dataProviderClase as $data) {
					if ($data->id_curso == $idCurso){
						array_push($arrayClase,$data->id_clase);
						array_push($arrayFecha,$data->fecha);
					}
				}
			
			
				$soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
				$horas = $soapClient->getCantHoraMateriaGeneral($idCurso);
				foreach($horas as $key => $array){
					array_push($arrayDias,$key);
				}		
			
			}
			
			$array = array();
			$array['clase'] = $arrayClase;
			$array['fecha'] = $arrayFecha;
			$array['dias'] = $arrayDias;
			
			
			header("Content-type: application/json");
			echo json_encode($array);
        }
    }

//*************************************************************************************************************************************************************			
    public function actionObtenerPresentes() {
        if (Yii::app()->request->isAjaxRequest) {
            $idAlumno = Yii::app()->request->getParam('idAlumnos', null); 				   
            header("Content-type: text/html");
            echo CVarDumper::dumpAsString($idAlumno);
        }
    }

//*************************************************************************************************************************************************************	
    public function actionReporteAlumno() {
        $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
        $response = $soapClient->listarCursosXAlumno();
        $copia = array();
        $array = array();

        if (isset($response)) {
            foreach ($response as $clave => $cadena) {
                foreach ($cadena as $key => $value) {
                    $alumnoXCurso = new AlumnoXCurso;
                    $array['id_alumno'] = (int) ($clave);
                    $array['id_curso'] = (int) ($value);
                    $alumnoXCurso->setAttributes($array);
                    $alumnoXCurso->setPrimaryKey(array('id_alumno' => $array['id_alumno'], 'id_curso' => $array['id_curso']));
                    array_push($copia, $alumnoXCurso);
                }
            }

            $dataProviderAluMat = $copia;
            $this->render('reportealumno', array('dataProviderAluMat' => $dataProviderAluMat));
        } else {
            throw new CHttpException(404, 'No funciona el listarAlumnoXCurso() en ReporteAlumno');
        }
    }

//*************************************************************************************************************************************************************
    public function actionReporteProfesor() {

        $baseScriptUrl = Yii::app()->getAssetManager()->publish(Yii::getPathOfAlias('zii.widgets.assets')) . '/gridview';
        $cssFile = $baseScriptUrl . '/styles.css';
        Yii::app()->getClientScript()->registerCssFile($cssFile);

        $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);

        $dataProviderAsistencia = new CActiveDataProvider(Asistencia::model(), array(
            'keyAttribute' => 'id_alumno',
            'criteria' => array('condition' => 'id_curso=-1', 'order' => 'id_alumno ASC')
        ));

        $response = $soapClient->listarCursosXProfesor();
        $copia = array();
        $array = array();

        if (isset($response)) {
            foreach ($response as $clave => $cadena) {
                foreach ($cadena as $key => $value) {
                    $profesorXCurso = new ProfesorXCurso;
                    $array['id_profesor'] = (int) ($clave) + 1;
                    $array['id_curso'] = (int) ($value);
                    $profesorXCurso->setAttributes($array);
                    $profesorXCurso->setPrimaryKey(array('id_profesor' => $array['id_profesor'], 'id_curso' => $array['id_curso']));
                    array_push($copia, $profesorXCurso);
                }
            }
            $dataProviderProfMat = $copia;
        } else {
            throw new CHttpException(404, 'No funciona listarCursosXProfesor en reporteprofesor');
        }

        $this->render('reporteprofesor', array('dataProviderProfMat' => $dataProviderProfMat));
    }

//*************************************************************************************************************************************************************			
    public function actionActualizarBd() {
        if (Yii::app()->request->isAjaxRequest) {
            $aux = array();
            $idAlumnos = Yii::app()->request->getParam('lista1', null);
            $idAlumnosXHoras = Yii::app()->request->getParam('lista2', null);
            $idAlumnos = explode(',', $idAlumnos);
            $idAlumnosXHoras = explode(',', $idAlumnosXHoras);
            $valor = "";
            $idCursos = Yii::app()->user->getState('idCurso');
            $idClase = Yii::app()->user->getState('idClase');

            if ($idCursos != null && $idClase != null) {
                for ($i = 0; $i < count($idAlumnos); $i++) {
                    $queryString = "update asistencia set presencia = $idAlumnosXHoras[$i] where 
                            $idCursos = id_curso and $idAlumnos[$i] = id_alumno and id_clase = $idClase;";
                    $query = Yii::app()->db->createCommand($queryString)->queryRow();
                }
                
                $valor .= "La Base de datos ha sido actualizada.";

                   header("Content-type: text/html");
                   echo $valor;
            }
        }
    }
//*************************************************************************************************************************************************************
    public function actionMisCursosAlumno() {
        $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
        $response = $soapClient->listarCursosXAlumno();
        $copia = array();
        $array = array();

        if (isset($response)) {
            foreach ($response as $clave => $cadena) {
                foreach ($cadena as $key => $value) {
                    $alumnoXCurso = new AlumnoXCurso;
                    $array['id_alumno'] = (int) ($clave);
                    $array['id_curso'] = (int) ($value);
                    $alumnoXCurso->setAttributes($array);
                    $alumnoXCurso->setPrimaryKey(array('id_alumno' => $array['id_alumno'], 'id_curso' => $array['id_curso']));
                    array_push($copia, $alumnoXCurso);
                }
            }

            $dataProviderAluMat = $copia;
        }
        $this->render('miscursos', array('tipo' => 'alumno', 'dataProviderAluMat' => $dataProviderAluMat));
    }
//*************************************************************************************************************************************************************
    public function actionMisCursosProfesor() {
        $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);

        $dataProviderAsistencia = new CActiveDataProvider(Asistencia::model(), array(
            'keyAttribute' => 'id_alumno',
            'criteria' => array('condition' => 'id_curso=-1', 'order' => 'id_alumno ASC')
        ));

        $response = $soapClient->listarCursosXProfesor();
        $copia = array();
        $array = array();

        if (isset($response)) {
            foreach ($response as $clave => $cadena) {
                foreach ($cadena as $key => $value) {
                    $profesorXCurso = new ProfesorXCurso;
                    $array['id_profesor'] = (int) ($clave) + 1;
                    $array['id_curso'] = (int) ($value);
                    $profesorXCurso->setAttributes($array);
                    $profesorXCurso->setPrimaryKey(array('id_profesor' => $array['id_profesor'], 'id_curso' => $array['id_curso']));
                    array_push($copia, $profesorXCurso);
                }
            }
            $dataProviderProfMat = $copia;
        }
        $this->render('miscursos', array('tipo' => 'profesor', 'dataProviderProfMat' => $dataProviderProfMat));
    }

//*************************************************************************************************************
    public function actionSelectfacultad() {
        if (Yii::app()->getRequest()->isAjaxRequest) {

            $fid = Yii::app()->getRequest()->getParam('facultad', 0);

            $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
            $carreras = $soapClient->listarCarreras();
            $array = array();
            foreach ($carreras as $carrera) {
                if ($carrera['org_unid_acad_id'] == $fid) {
                    $array[$carrera['org_carrera_id']] = $carrera['nombre'];
                }
            }

            $t = CHtml::tag('option', array('value' => ''), CHtml::encode('Por favor seleccione...'), true);
            foreach ($array as $valor => $nombreCarrera) {
                $t = $t . CHtml::tag('option', array('value' => $valor), CHtml::encode($nombreCarrera), true);
            }
            echo $t;
        }
    }
//*************************************************************************************************************************************************************
    public function actionSelectcarrera() {
        if (Yii::app()->getRequest()->isAjaxRequest) {

            $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
            $periodos = $soapClient->listarPeriodos();
            $array = array();
            foreach ($periodos as $periodo) {
                $array[$periodo['cal_periodo_lectivo_id']] = $periodo['nombre'] . ' - ' . $periodo['anho_academico'];
            }

            if (count($array) == 0) {
                $t = CHtml::tag('option', array('value' => ''), CHtml::encode('No se encuentran resultados'), true);
            } else {
                $t = CHtml::tag('option', array('value' => ''), CHtml::encode('Por favor seleccione...'), true);
                foreach ($array as $valor => $nombrePeriodo) {
                    $t = $t . CHtml::tag('option', array('value' => $valor), CHtml::encode($nombrePeriodo), true);
                }
            }
            echo $t;
        }
    }
//*************************************************************************************************************************************************************
    public function actionSelectperiodo() {
        if (Yii::app()->getRequest()->isAjaxRequest) {
            $idAlumno = Yii::app()->user->getState('idAlumno');

            $cid = Yii::app()->getRequest()->getParam('carrera', 0);
            $pid = Yii::app()->getRequest()->getParam('periodo', 0);

            $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
            $materias = $soapClient->listarMaterias();
            $cursos = $soapClient->listarCursos();
            $cursoXAlumno = $soapClient->getCursoXAlumno($idAlumno);
            $array_aux = array();
            $array = array();
            $resultado = array();

            foreach ($materias as $materia) {
                if ($materia['org_carrera_id'] == $cid) {
                    foreach ($cursos as $curso) {
                        if ($curso['cal_periodo_lectivo_id'] == $pid) {
                            if ($curso['pe_asignatura_id'] == $materia['pe_asignatura_id']) {
                                $array[$curso['prg_curso_id']] = $materia['nombre'];
                            }
                        }
                    }
                }
            }

            foreach ($cursoXAlumno as $key_1 => $value_1) {
                foreach ($array as $key_2 => $value_2) {
                    if ($value_1 == $key_2) {
                        $array_aux [$key_2] = $value_2;
                        break;
                    }
                }
            }
            if (count($array_aux) == 0) {
                $t = CHtml::tag('option', array('value' => ''), CHtml::encode('No se encuentran resultados'), true);
            } else {
                $t = CHtml::tag('option', array('value' => ''), CHtml::encode('Por favor seleccione...'), true);
                foreach ($array_aux as $valor => $nombreCurso) {
                    $t = $t . CHtml::tag('option', array('value' => $valor), CHtml::encode($nombreCurso), true);
                }
            }
            echo $t;
        }
    }


//*************************************************************************************************************************************************************
    public function actionSelectperiodo2() {
        
            $cid = Yii::app()->request->getParam('carrera', null);
            $pid = Yii::app()->request->getParam('periodo', null);
            $fecha_desde = Yii::app()->request->getParam('fecha_desde', null);
            $fecha_hasta = Yii::app()->request->getParam('fecha_hasta', null);
            
            $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
            $materias = $soapClient->listarMaterias();
            $cursos = $soapClient->listarCursos();

            $idProfesor = Yii::app()->user->getState('idProfesor');
            $array_aux = array();
            $cursoXProfesor = $soapClient->getCursoXProfesor($idProfesor); 
            $resultado = array();

            $array = array();
		Yii::log(CVarDumper::dumpAsString($idProfesor),'info','assitenciaController');

            foreach ($materias as $materia) {
                if ($materia['org_carrera_id'] == $cid) {
                    foreach ($cursos as $curso) {
                        if ($curso['cal_periodo_lectivo_id'] == $pid) {
                            if ($curso['pe_asignatura_id'] == $materia['pe_asignatura_id']) {
                                $array[$curso['prg_curso_id']] = $materia['nombre'];
                            }
                        }
                    }
                }
            }

            //**************
            foreach ($cursoXProfesor as $key_1 => $value_1) {
                foreach ($array as $key_2 => $value_2) {
                    if ($value_1 == $key_2) {
                        $array_aux [$key_2] = $value_2;
                        break;
                    }
                }
            }
            //**************
            if ($idProfesor !== null) {
                foreach ($array_aux as $idCurso => $key) {
                    $alumnosXCursos = $soapClient->getAlumnoXCurso($idCurso);
                    $aux = 0;
                    foreach ($alumnosXCursos as $idAlumno) {
                        $alumnoXReduccion = $soapClient->getAlumnoXReduccion($idAlumno, $idCurso); 
                        $alumnoXReduccion = (float) ($alumnoXReduccion / 100);
                        $totalHorasMateria = $soapClient->getCurso($idCurso); //15semanas
                        $totalHorasMateria = $totalHorasMateria['cnt_horas_sem'];
                        if ($alumnoXReduccion == 0)
                            $totalHorasMateria = $totalHorasMateria;
                        else
                            $totalHorasMateria = $totalHorasMateria * $alumnoXReduccion;

                        $queryString = "select sum(presencia) as horas from asistencia where 
                                id_alumno = $idAlumno and id_curso = $idCurso and 
                          id_clase in( select id_clase from clase where fecha between '$fecha_desde' and '$fecha_hasta');";

                        $query = Yii::app()->db->createCommand($queryString)->queryRow();
                        $aux = $aux + (((int) $query['horas'] / $totalHorasMateria) * 100);
                    }

                    $nombreMateria = $soapClient->getNombreMateria($idCurso);
                    $resultado[$nombreMateria] = $aux / sizeof($alumnosXCursos);
                }
                $imprimir = "<table width=\"100%\" border=\"0\" cellpadding=\"5\"> <br>"; 
                $imprimir .= "Reportaje General de asistencia de los alumnos:<br><br>";
                $imprimir .= "<tr><td><b><u>Materia</u></b> </td> <td><b><u>Porcentaje asistencia</u></b></td></tr>";
                foreach ($resultado as $key => $value) {
                    $imprimir .= "<tr><td>$key : </td> <td>". round($value,2) ."<b>%</b> </td></tr>";
                }

		
		header("Content-type: text/html");
                echo $imprimir;
            }
    }
//*************************************************************************************************************************************************************
    public function actionSelectperiodo3() {
        if (Yii::app()->getRequest()->isAjaxRequest) {
            $idAlumno = Yii::app()->user->getState('idAlumno');

            $cid = Yii::app()->request->getParam('carrera', null);
            $pid = Yii::app()->request->getParam('periodo', null);
            $fecha_desde = Yii::app()->request->getParam('fecha_desde', null);
            $fecha_hasta = Yii::app()->request->getParam('fecha_hasta', null);

            $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
            $materias = $soapClient->listarMaterias();
            $cursos = $soapClient->listarCursos();
            $cursoXAlumno = $soapClient->getCursoXAlumno($idAlumno); 
            $array_aux = array();
            $array = array();
            $resultado = array();

            foreach ($materias as $materia) {
                if ($materia['org_carrera_id'] == $cid) {
                    foreach ($cursos as $curso) {
                        if ($curso['cal_periodo_lectivo_id'] == $pid) {
                            if ($curso['pe_asignatura_id'] == $materia['pe_asignatura_id']) {
                                $array[$curso['prg_curso_id']] = $materia['nombre'];
                            }
                        }
                    }
                }
            }

            //**************
            foreach ($cursoXAlumno as $key_1 => $value_1) {
                foreach ($array as $key_2 => $value_2) {
                    if ($value_1 == $key_2) {
                        $array_aux [$key_2] = $value_2;
                        break;
                    }
                }
            }
            //**************

            if ($idAlumno !== null) {
                foreach ($array_aux as $idCurso => $key) {
                    $alumnoXReduccion = $soapClient->getAlumnoXReduccion($idAlumno, $idCurso); 
                    $alumnoXReduccion = (float) ($alumnoXReduccion / 100);
                    $totalHorasMateria = $soapClient->getCurso($idCurso); //15semanas
                    $totalHorasMateria = $totalHorasMateria['cnt_horas_sem'];
                    if ($alumnoXReduccion == 0)
                        $totalHorasMateria = $totalHorasMateria;
                    else
                        $totalHorasMateria = $totalHorasMateria * $alumnoXReduccion;

                    /*$queryString = "select sum(presencia) as horas from asistencia where 
                                id_alumno = $idAlumno and id_curso = $idCurso ;";*/
                    $queryString = "select sum(presencia) as horas from asistencia where 
                                id_alumno = $idAlumno and id_curso = $idCurso and 
                          id_clase in( select id_clase from clase where fecha between '$fecha_desde' and '$fecha_hasta');";

                    
                    $query = Yii::app()->db->createCommand($queryString)->queryRow();
                    $nombreMateria = $soapClient->getNombreMateria($idCurso);
                    $resultado[$nombreMateria] = (((int) $query['horas'] / $totalHorasMateria) * 100);
                }

		Yii::log(CVarDumper::dumpAsString($resultado),'info','assitenciaController');

                $imprimir = "<table width=\"100%\" border=\"0\" cellpadding=\"5\"> <br>"; // abri la tabla ... 
                $imprimir .= "Reportaje General de asistencia del alumno:<br><br>";
                $imprimir .= "<tr><td><b><u>Materia</u></b> </td> <td><b><u>Porcentaje asistencia</u></b></td></tr>";
                foreach ($resultado as $key => $value) {
                    $imprimir .= "<tr><td>$key : </td> <td>". round($value,2) ."<b>%</b> </td></tr>";
                }
                header("Content-type: text/html");

                echo $imprimir;
            }
        }
    }
//*************************************************************************************************************************************************************
        public function actionSelectperiodo4() {
        if (Yii::app()->getRequest()->isAjaxRequest) {

            $cid = Yii::app()->getRequest()->getParam('carrera', 0);
            $pid = Yii::app()->getRequest()->getParam('periodo', 0);

            $soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
            $materias = $soapClient->listarMaterias();
            $cursos = $soapClient->listarCursos();

            $idProfesor = Yii::app()->user->getState('idProfesor');
            $array_aux = array();
            $cursoXProfesor = $soapClient->getCursoXProfesor($idProfesor); 

            $array = array();

            foreach ($materias as $materia) {
                if ($materia['org_carrera_id'] == $cid) {
                    foreach ($cursos as $curso) {
                        if ($curso['cal_periodo_lectivo_id'] == $pid) {
                            if ($curso['pe_asignatura_id'] == $materia['pe_asignatura_id']) {
                                $array[$curso['prg_curso_id']] = $materia['nombre'];
                            }
                        }
                    }
                }
            }

            //**************
            foreach ($cursoXProfesor as $key_1 => $value_1) {
                foreach ($array as $key_2 => $value_2) {
                    if ($value_1 == $key_2) {
                        $array_aux [$key_2] = $value_2;
                        break;
                    }
                }
            }
          

            if (count($array_aux) == 0) {
                $t = CHtml::tag('option', array('value' => ''), CHtml::encode('No se encuentran resultados'), true);
            } else {
                $t = CHtml::tag('option', array('value' => ''), CHtml::encode('Por favor seleccione...'), true);
                foreach ($array_aux as $valor => $nombreCurso) {
                    $t = $t . CHtml::tag('option', array('value' => $valor), CHtml::encode($nombreCurso), true);
                }
            }
            echo $t;
        }
    }
//*************************************************************************************************************************************************************
	public function actionGetperiodo(){
		$idPeriodo = Yii::app()->getRequest()->getParam('idPeriodo',0);
		
		$soapClient = new SoapClient(Yii::app()->getParams()->webServiceUrl);
		$periodo = $soapClient->getPeriodo($idPeriodo);
		
		header("Content-type: application/json");
		echo '{"minDate": "'.$periodo['fecha_desde'].'", "maxDate": "'.$periodo['fecha_hasta'].'"}';
	}

}

?>